/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Speech Act</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getSpeechAct()
 * @model
 * @generated
 */
public enum SpeechAct implements Enumerator {
	/**
	 * The '<em><b>Accept Proposal</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #ACCEPT_PROPOSAL_VALUE
	 * @generated
	 * @ordered
	 */
	ACCEPT_PROPOSAL(0, "acceptProposal", "Accept-Proposal"),

	/**
	 * The '<em><b>Agree</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #AGREE_VALUE
	 * @generated
	 * @ordered
	 */
	AGREE(1, "agree", "Agree"),

	/**
	 * The '<em><b>Cancel</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CANCEL_VALUE
	 * @generated
	 * @ordered
	 */
	CANCEL(2, "cancel", "Cancel"),

	/**
	 * The '<em><b>Call For Proposal</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CALL_FOR_PROPOSAL_VALUE
	 * @generated
	 * @ordered
	 */
	CALL_FOR_PROPOSAL(3, "callForProposal", "Call-for-Proposal"),

	/**
	 * The '<em><b>Confirm</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CONFIRM_VALUE
	 * @generated
	 * @ordered
	 */
	CONFIRM(4, "confirm", "Confirm"),

	/**
	 * The '<em><b>Disconfirm</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DISCONFIRM_VALUE
	 * @generated
	 * @ordered
	 */
	DISCONFIRM(5, "disconfirm", "Disconfirm"),

	/**
	 * The '<em><b>Failure</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #FAILURE_VALUE
	 * @generated
	 * @ordered
	 */
	FAILURE(6, "failure", "Failure"),

	/**
	 * The '<em><b>Inform</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #INFORM_VALUE
	 * @generated
	 * @ordered
	 */
	INFORM(7, "inform", "Inform"),

	/**
	 * The '<em><b>Not Understood</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NOT_UNDERSTOOD_VALUE
	 * @generated
	 * @ordered
	 */
	NOT_UNDERSTOOD(8, "notUnderstood", "Not-Understood"),

	/**
	 * The '<em><b>Propose</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PROPOSE_VALUE
	 * @generated
	 * @ordered
	 */
	PROPOSE(9, "propose", "Propose"),

	/**
	 * The '<em><b>Query If</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #QUERY_IF_VALUE
	 * @generated
	 * @ordered
	 */
	QUERY_IF(10, "queryIf", "Query-If"),

	/**
	 * The '<em><b>Query Ref</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #QUERY_REF_VALUE
	 * @generated
	 * @ordered
	 */
	QUERY_REF(11, "queryRef", "Query-Ref"),

	/**
	 * The '<em><b>Refuse</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REFUSE_VALUE
	 * @generated
	 * @ordered
	 */
	REFUSE(12, "refuse", "Refuse"),

	/**
	 * The '<em><b>Reject Proposal</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REJECT_PROPOSAL_VALUE
	 * @generated
	 * @ordered
	 */
	REJECT_PROPOSAL(13, "rejectProposal", "Reject-Proposal"),

	/**
	 * The '<em><b>Request</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REQUEST_VALUE
	 * @generated
	 * @ordered
	 */
	REQUEST(14, "request", "Request"),

	/**
	 * The '<em><b>Request When</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REQUEST_WHEN_VALUE
	 * @generated
	 * @ordered
	 */
	REQUEST_WHEN(15, "requestWhen", "Request-When"),

	/**
	 * The '<em><b>Request Whenever</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REQUEST_WHENEVER_VALUE
	 * @generated
	 * @ordered
	 */
	REQUEST_WHENEVER(16, "requestWhenever", "Request-Whenever");

	/**
	 * The '<em><b>Accept Proposal</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Accept Proposal</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #ACCEPT_PROPOSAL
	 * @model name="acceptProposal" literal="Accept-Proposal"
	 * @generated
	 * @ordered
	 */
	public static final int ACCEPT_PROPOSAL_VALUE = 0;

	/**
	 * The '<em><b>Agree</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Agree</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #AGREE
	 * @model name="agree" literal="Agree"
	 * @generated
	 * @ordered
	 */
	public static final int AGREE_VALUE = 1;

	/**
	 * The '<em><b>Cancel</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Cancel</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CANCEL
	 * @model name="cancel" literal="Cancel"
	 * @generated
	 * @ordered
	 */
	public static final int CANCEL_VALUE = 2;

	/**
	 * The '<em><b>Call For Proposal</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Call For Proposal</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CALL_FOR_PROPOSAL
	 * @model name="callForProposal" literal="Call-for-Proposal"
	 * @generated
	 * @ordered
	 */
	public static final int CALL_FOR_PROPOSAL_VALUE = 3;

	/**
	 * The '<em><b>Confirm</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Confirm</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CONFIRM
	 * @model name="confirm" literal="Confirm"
	 * @generated
	 * @ordered
	 */
	public static final int CONFIRM_VALUE = 4;

	/**
	 * The '<em><b>Disconfirm</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Disconfirm</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DISCONFIRM
	 * @model name="disconfirm" literal="Disconfirm"
	 * @generated
	 * @ordered
	 */
	public static final int DISCONFIRM_VALUE = 5;

	/**
	 * The '<em><b>Failure</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Failure</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #FAILURE
	 * @model name="failure" literal="Failure"
	 * @generated
	 * @ordered
	 */
	public static final int FAILURE_VALUE = 6;

	/**
	 * The '<em><b>Inform</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Inform</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #INFORM
	 * @model name="inform" literal="Inform"
	 * @generated
	 * @ordered
	 */
	public static final int INFORM_VALUE = 7;

	/**
	 * The '<em><b>Not Understood</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Not Understood</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NOT_UNDERSTOOD
	 * @model name="notUnderstood" literal="Not-Understood"
	 * @generated
	 * @ordered
	 */
	public static final int NOT_UNDERSTOOD_VALUE = 8;

	/**
	 * The '<em><b>Propose</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Propose</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PROPOSE
	 * @model name="propose" literal="Propose"
	 * @generated
	 * @ordered
	 */
	public static final int PROPOSE_VALUE = 9;

	/**
	 * The '<em><b>Query If</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Query If</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #QUERY_IF
	 * @model name="queryIf" literal="Query-If"
	 * @generated
	 * @ordered
	 */
	public static final int QUERY_IF_VALUE = 10;

	/**
	 * The '<em><b>Query Ref</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Query Ref</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #QUERY_REF
	 * @model name="queryRef" literal="Query-Ref"
	 * @generated
	 * @ordered
	 */
	public static final int QUERY_REF_VALUE = 11;

	/**
	 * The '<em><b>Refuse</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Refuse</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REFUSE
	 * @model name="refuse" literal="Refuse"
	 * @generated
	 * @ordered
	 */
	public static final int REFUSE_VALUE = 12;

	/**
	 * The '<em><b>Reject Proposal</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Reject Proposal</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REJECT_PROPOSAL
	 * @model name="rejectProposal" literal="Reject-Proposal"
	 * @generated
	 * @ordered
	 */
	public static final int REJECT_PROPOSAL_VALUE = 13;

	/**
	 * The '<em><b>Request</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Request</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REQUEST
	 * @model name="request" literal="Request"
	 * @generated
	 * @ordered
	 */
	public static final int REQUEST_VALUE = 14;

	/**
	 * The '<em><b>Request When</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Request When</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REQUEST_WHEN
	 * @model name="requestWhen" literal="Request-When"
	 * @generated
	 * @ordered
	 */
	public static final int REQUEST_WHEN_VALUE = 15;

	/**
	 * The '<em><b>Request Whenever</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Request Whenever</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REQUEST_WHENEVER
	 * @model name="requestWhenever" literal="Request-Whenever"
	 * @generated
	 * @ordered
	 */
	public static final int REQUEST_WHENEVER_VALUE = 16;

	/**
	 * An array of all the '<em><b>Speech Act</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final SpeechAct[] VALUES_ARRAY =
		new SpeechAct[] {
			ACCEPT_PROPOSAL,
			AGREE,
			CANCEL,
			CALL_FOR_PROPOSAL,
			CONFIRM,
			DISCONFIRM,
			FAILURE,
			INFORM,
			NOT_UNDERSTOOD,
			PROPOSE,
			QUERY_IF,
			QUERY_REF,
			REFUSE,
			REJECT_PROPOSAL,
			REQUEST,
			REQUEST_WHEN,
			REQUEST_WHENEVER,
		};

	/**
	 * A public read-only list of all the '<em><b>Speech Act</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<SpeechAct> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Speech Act</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static SpeechAct get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			SpeechAct result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Speech Act</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static SpeechAct getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			SpeechAct result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Speech Act</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static SpeechAct get(int value) {
		switch (value) {
			case ACCEPT_PROPOSAL_VALUE: return ACCEPT_PROPOSAL;
			case AGREE_VALUE: return AGREE;
			case CANCEL_VALUE: return CANCEL;
			case CALL_FOR_PROPOSAL_VALUE: return CALL_FOR_PROPOSAL;
			case CONFIRM_VALUE: return CONFIRM;
			case DISCONFIRM_VALUE: return DISCONFIRM;
			case FAILURE_VALUE: return FAILURE;
			case INFORM_VALUE: return INFORM;
			case NOT_UNDERSTOOD_VALUE: return NOT_UNDERSTOOD;
			case PROPOSE_VALUE: return PROPOSE;
			case QUERY_IF_VALUE: return QUERY_IF;
			case QUERY_REF_VALUE: return QUERY_REF;
			case REFUSE_VALUE: return REFUSE;
			case REJECT_PROPOSAL_VALUE: return REJECT_PROPOSAL;
			case REQUEST_VALUE: return REQUEST;
			case REQUEST_WHEN_VALUE: return REQUEST_WHEN;
			case REQUEST_WHENEVER_VALUE: return REQUEST_WHENEVER;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private SpeechAct(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //SpeechAct
